﻿using Newtonsoft.Json;
using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Web;
using UFIDA.U8.BJSOFT.LF.MES.WEBAPI.DBHelp;
using UFIDA.U8.BJSOFT.LF.MES.WEBAPI.Models;

namespace UFIDA.U8.BJSOFT.LF.MES.WEBAPI.Method
{
    public class AddITEM
    {
		public static string Insert(string filename, string jsons)
		{
			Result mr = new Result();
			List<ItemsItemR> lim = new List<ItemsItemR>();
			ItemsItemR mir = new ItemsItemR();
			int row = 0;
			string res = "";
			bool flag = !string.IsNullOrEmpty(jsons);
			if (flag)
			{
				try
				{
					List<string> list = new List<string>();
					XMITEM xm = JsonConvert.DeserializeObject<XMITEM>(jsons);
					string dbname = xm.Dbname;
					string xmclass = xm.ITEMCLASS;
					string xmfl = xm.ITEMFL;
					string xmcode = xm.ITEMCODE;
					string xmname = xm.ITEMNAME;
					string ccuscode = xm.CCUSCODE;
                    if (!string.IsNullOrEmpty(dbname))
                    {
						string sql = "select * from sysdatabases where name='"+dbname+"'";
						DataTable dt = DBHelp.SQLHelper.GetDataTable(sql);
                        if (dt.Rows.Count>0)
                        {
                            if (string.IsNullOrEmpty(xmcode))
                            {
								row = 1;
								res += "项目编码[" + xmcode + "]不允许为空!请检查[ITEMCODE]字段!";
							}
							if (!string.IsNullOrEmpty(ccuscode)&&row==0)
							{
								sql = "select ccuscode from " + dbname + "..customer where ccusdefine3='" + ccuscode + "'";
								dt = DBHelp.SQLHelper.GetDataTable(sql);
								if (dt.Rows.Count > 0)
								{
									ccuscode = dt.Rows[0]["ccuscode"].ToString();
									sql = "insert into UFDATA_666_2013..SWTX_T_SWHTH(Cuscode,WHHtcode,Acc_id,bEffect,cSource) values ('" + ccuscode + "','" + xmcode + "','666',1,1)";
									list.Add(sql);
								}
								else
								{
									row = 1;
									res += "客户编码[" + ccuscode + "]在U8系统[" + dbname+"]中不存在对照!";
								}
							}
                            else
                            {
                                row = 1;
                                res += "客户编码不允许为空,请检查[CCUSCODE]字段!";
                            }
                            #region 弃用
                            //if (!string.IsNullOrEmpty(xmfl))
                            //                     {
                            //	sql =@"select ctable,cclasstable from "+ dbname +@"..fitem where citem_class='"+xmfl+"'";
                            //	dt = DBHelp.SQLHelper.GetDataTable(sql);
                            //                         if (dt.Rows.Count>0)
                            //                         {
                            //		string ctable = dt.Rows[0]["ctable"].ToString();
                            //		string cclasstable = dt.Rows[0]["cclasstable"].ToString();
                            //                             if (!string.IsNullOrEmpty(cclasstable)&&!string.IsNullOrEmpty(ctable))
                            //                             {
                            //			sql = "select * from "+dbname+".."+cclasstable+" where cItemCcode='"+xmclass+"'";
                            //			dt = DBHelp.SQLHelper.GetDataTable(sql);
                            //                                 if (dt.Rows.Count>0)
                            //                                 {
                            //				if (!string.IsNullOrEmpty(xmcode) && !string.IsNullOrEmpty(xmname))
                            //				{
                            //					sql = "select * from " + dbname + ".." + ctable + " where 1=1 and (citemcode='" + xmcode + "' or citemname='" + xmname + "')";
                            //					dt = DBHelp.SQLHelper.GetDataTable(sql);
                            //					if (dt.Rows.Count > 0)
                            //					{
                            //						row = 1;
                            //						res += "U8系统中[" + xmclass + "]大类编码下,已存在项目编码[" + xmcode + "]或项目名称[" + xmname + "]!请检查[ITEMCODE、ITEMNAME]字段!";
                            //					}
                            //					else
                            //					{
                            //						//sql = "insert into "+dbname+".."+ctable+"(citemcode,citemname,citemccode,bclose)VALUES('"+xmcode+"','"+xmname+"','"+xmclass+"',0)";
                            //						//list.Add(sql);
                            //                                             if (!string.IsNullOrEmpty(ccuscode))
                            //                                             {
                            //                                                 sql = "select ccuscode from " + dbname + "..customer where ccusdefine3='"+ccuscode+"'";
                            //							dt = DBHelp.SQLHelper.GetDataTable(sql);
                            //                                                 if (dt.Rows.Count>0)
                            //                                                 {
                            //								ccuscode = dt.Rows[0]["ccuscode"].ToString();
                            //								sql = "insert into UFDATA_666_2013..SWTX_T_SWHTH(Cuscode,WHHtcode,Acc_id,bEffect,cSource) values ('"+ccuscode+"','"+xmcode+"','666',1,1)";
                            //								list.Add(sql);
                            //                                                 }
                            //                                                 else
                            //                                                 {
                            //								row = 1;
                            //								res += "客户编码[" + ccuscode + "]在U8系统中不存在对照!";
                            //							}
                            //                                             }
                            //                                         }
                            //				}
                            //				else
                            //				{
                            //					row = 1;
                            //					res += "项目编码[" + xmcode + "]和项目名称不允许为空!请检查[ITEMCODE、ITEMNAME]字段!";
                            //				}
                            //			}
                            //                                 else
                            //                                 {
                            //				row = 1;
                            //				res += "项目大类编码[" + xmclass + "]在U8系统中不存在!";
                            //			}
                            //		}
                            //                             else
                            //                             {
                            //			row = 1;
                            //			res += "项目分类编码[" + xmfl + "]找不到对应的项目大类表或者项目表!";
                            //		}

                            //                         }
                            //                         else
                            //                         {
                            //		row = 1;
                            //		res += "项目分类编码["+xmfl + "]在U8系统中不存在!请检查[ITEMFL]字段!";
                            //	}
                            //                     }
                            //                     else
                            //                     {
                            //	row = 1;
                            //	res += "项目分类编码不允许为空!请检查[ITEMFL]字段!";
                            //                     }
                            #endregion
                        }
                        else
                        {
							row = 1;
							res += "数据库名["+dbname+"]不存在!";
                        }
                    }
                    else
                    {
						row = 1;
						res += "U8账套不允许为空!检查Dbname字段";
                    }
                    if (row==0)
                    {
						int count = SQLHelper.ExecuteSqlTran(list);
						bool flag31 = count > 0;
						if (flag31)
						{
							res += "新增成功";
							LogException.WriteiLog(filename, "新增成功[" + xmcode + "]", LogException.ilog, false);
						}
						else
						{
							row = 1;
							res += "入库失败";
						}
					}
				}
				catch (Exception ex)
				{
					row = 1;
					LogException.WriteiLog(filename, "RD10异常:" + ex.Message, LogException.ilog, true);
					res = res + "失败:" + ex.Message;
				}
			}
			else
			{
				row = 1;
				res += "未传任何数据!";
			}
			bool flag32 = row == 1;
			if (flag32)
			{
				mr.Code = "500";
				mr.Msg = res;
			}
			else
			{
				mr.Code = "200";
				mr.Msg = res;
			}
			return JsonConvert.SerializeObject(mr);
		}
	}
}